<?php

namespace app\user\controller;

use think\Controller;
use think\Db;
use think\Request;
use think\Session;

class Goods extends Controller
{
    //
    public function buy(Request $request)
    {
        $post=$request->post();
//        var_dump($post);
        $id= $post['id'];
//        return $id;
//        $id=6;
        $data=Db::name('ask')->where('id',$id)->find();
//        var_dump($data);
        //数量
        $price=Db::name('goods')->field(['price'])->where('stockcode',$data['stockcode'])->find()['price'];
        $count=floor($data['mybj']/$price);
//        var_dump($count);

        //所需权利金
        $total=$count*$price*$data['qiquanlv']/100;
//        var_dump($total);
//
        //获取余额
        $uid=Session::get('user.id');
//        $uid=5;
//        var_dump($uid);
        $yonghu=Db::name('user_data')->where('uid',$uid)->find();
        if($yonghu['smstatus']!=3){
            $info[0]=0;
            $info[1]='请先进行实名认证';
            return $info;
        }
        $yue=$yonghu['money'];
        if($yue<$total){
            $info[0]=0;
            $info[1]='权利金不足,请先入金';
            return $info;
//            var_dump(111);
        }

        $yue=$yue-$total;
//        var_dump($yue);



        $oid=$this->orderNum();
//        var_dump($oid);



//  `uid`    int            not null     comment '用户id',
//  `ordernum` varchar(255) NOT NULL comment '交易号',
//  `stockcode` char(32)    not null            comment '股票代码',
//  `count`  int            not null     comment '数量',
//  `buyprice`    decimal(10,2)    not null       comment '买入价',
//  `jyzq`      char(32)    not null            comment '交易周期',
//  `time`      int(11)             not null       comment '开仓时间'

        $temp['uid']=$uid;
        $temp['ordernum']=$oid;
        $temp['stockcode']=$data['stockcode'];
        $temp['count']=$count;
        $temp['buyprice']=$price;
        $temp['jyzq']=$data['jyzq'];
        $temp['time']=time();


        Db::startTrans();
//        var_dump($yue);
        $res=Db::name('user_data')->where('uid',$uid)->update(['money'=>$yue]);
//        var_dump($res);die;
        if(!$res){
            Db::rollback();
            $info[0]=0;
            $info[1]='购入失败';
            return $info;
        }
        $res=Db::name('chicang')->insert($temp);
        if($res){

            $res=Db::name('ask')->where('id',$id)->delete();
            if($res){
                Db::commit();
//                return "<script>alert('修改成功');window.location.href='".url('user/Chicang/index')."'</script>";
                $info[0]=1;
                $info[1]='购入成功';
                return $info;
            }else{
                Db::rollback();
                $info[0]=0;
                $info[1]='购入失败';
                return $info;

            }
        }else{
            Db::rollback();
            $info[0]=0;
            $info[1]='购入失败';
            return $info;
        }






        //写表

    }

    public function orderNum()
    {
        $order_date = date('Y-m-d');

        //订单号码主体（YYYYMMDDHHIISSNNNNNNNN）

        $order_id_main = date('YmdHis') . rand(10000000,99999999);

        //订单号码主体长度

        $order_id_len = strlen($order_id_main);

        $order_id_sum = 0;

        for($i=0; $i<$order_id_len; $i++){

            $order_id_sum += (int)(substr($order_id_main,$i,1));

        }

        //唯一订单号码（YYYYMMDDHHIISSNNNNNNNNCC）

        $order_id = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);

        return $order_id;
    }

    public function sell(Request $request)
    {
        $id=$request->post()['id'];
//        $id=8;
//        return $id;
        $chicang=Db::name('chicang')->where('id',$id)->find();
//        var_dump($chicang);
        $stock=Db::name('goods')->where('stockcode',$chicang['stockcode'])->find();

        $yk=sprintf('%.2f',($stock['sellprice']-$chicang['buyprice'])*$chicang['count']);
        if($yk<0)$yk=0;

        $temp['uid']=$chicang['uid'];
        $temp['stockname']=$stock['name'];
        $temp['stockcode']=$chicang['stockcode'];
        $temp['count']=$chicang['count'];
        $temp['buyprice']=$chicang['buyprice'];
        $temp['sellprice']=$stock['sellprice'];
        $temp['yk']=$yk;
        $temp['buyoid']=$chicang['ordernum'];
        $temp['selloid']=$this->orderNum();
        $temp['buytime']=$chicang['time'];
        $temp['selltime']=time();

//        var_dump($temp);

        Db::startTrans();
        $res=Db::name('order')->insert($temp);
        if(!$res){
            Db::rollback();
            $info[0]=0;
            $info[1]='出售失败';
            return $info;
        }

        $res=Db::name('chicang')->where('id',$id)->delete();
        if(!$res){
            Db::rollback();
            $info[0]=0;
            $info[1]='出售失败';
            return $info;
        }

        $uid=Session::get('user.id');
        $yue=Db::name('user_data')->where('uid',$uid)->find()['money'];

        $yue=$yue+$yk;
        $res=Db::name('user_data')->where('uid',$uid)->update(['money'=>$yue]);
        if(!$res){
            Db::rollback();
            $info[0]=0;
            $info[1]='出售失败';
            return $info;
        }else{
            Db::commit();
            $info[0]=1;
            $info[1]='出售成功';
            return $info;
        }










    }
}
